package ru.beta2.testyard;

/**
 * Top abstraction that represents one test (one test method in terms of JUnit).
 * <br/>
 * User: Inc
 * Date: 17.06.2008
 * Time: 1:00:41
 */
public interface Scenario extends Step
{

    // todo add function 'isLoggedIn(player)'

    /**
     * Run execution of scenarion
     */
    void go();

    /**
     * @return reference to MessageControl object 
     */
    MessageControl getMessageControl();

    /**
     * When stepByStepMode is true (by default false), steps are executed with each call of {@link Step#nextStep()}
     * or {@link Step#nextStep(String)}. When stepByStepMode is false execution of scenario begin with call
     * of {@link #go()}. 
     * @return stepByStepMode flag
     */
    boolean isStepByStepMode();

    void setStepByStepMode(boolean stepByStep);

}
